import { createRouter, createWebHashHistory } from 'vue-router'
// 每个路由都需要映射到一个组件。
const routes = [
  {
    path: '/search',
    name: 'search',
    component: () => import('@/views/search.vue')
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('@/views/login.vue')
  },
  {
    path: '/register',
    name: 'register',
    component: () => import('@/views/register.vue')
  },
  {
    path: '/',
    name: 'blog',
    component: () => import('@/views/blog.vue')
  },
  {
    path: '/collection',
    name: 'collection',
    component: () => import('@/views/collection.vue')
  },
  {
    path: '/publishPosts',
    name: 'publishPosts',
    component: () => import('@/views/publishPosts.vue')
  },
  {
    path: '/content',
    name: 'content',
    component: () => import('@/views/content.vue')
  },
]
// 创建路由实例并传递`routes`配置
const router = createRouter({
// 内部提供了history模式的实现。为了简单起见，我们在这里使用hash模式。
  history: createWebHashHistory(),
  routes // `routes:routes`的缩写
})
export default router

// //写在路由配置中 src/router/index.js

// //希望好几个页面都需要验证是否登录
// router.beforeEach((to, from, next) => {
// 	if (to.meta.requireAuth) {
// 		//如果需要全限，判断
// 		if (localStorage.getItem("token")) {
// 			//如果没有token放行
// 			next(true);
// 		} else {
// 			//跳转到登录页面添加redirect
// 			next('/login?redirect' + to.path)
// 		}
// 	} else {
// 		//直接放行
// 		next(true);
// 	}
// })
// router.afterEach((to, from) => {
// 	console.log(from, '离开前')
// })
router.beforeEach((to, from, next) => {
  console.log('页面跳转', '从', from.path, '到', to.path)
  const whiteList = ['/','/login','/register','/content','/search']
  const userId = localStorage.getItem('userId')
  // 是否登录
  if (userId) {
      // // 有
      // // 是否去登录页 ？
      // if (to.path === '/login') {
      //  // 去登录页
      //  next('/') // 回首页
      //  console.log('用户已经登录，不能去登录页面')
      // } else {
      //  // 不去登录页
      next() // 放行
      // }
  } else {
      // 没有 token
      // 是否去白名单 ？
      if (whiteList.includes(to.path)) {
          // 去白名单
          next() // 放行
      } else {
          // 不去白名单
          ElMessage.error('尚未登陆，请先登录')
          // next('/login') // 去登录页
      }
  }
})
